
Dersen Lowery
Laurentson INC StructureDamage
859
|
Posted - 2013.12.04 21:35:00 -
[1] - Quote
Vincent Athena wrote:Ive heard the words "Brain in a Box" quite a bit and seen vague descriptions of it having to do with preparing session change data on a separate node. But is there a full description somewhere? What it does, how much load it will remove, and so on?
Based on what I remember from CCP Veritas talking about it:
The basic problem is that every time you do a session change, the new node has to query the database for all the information about you: skills, implants, clone, yadda yadda yadda. When 500 people undock, or jump a gate, that's 500 relatively large database queries at once, with the node twiddling its thumbs until the results come back (because it can't guess how your skills impact the particular fit of the particular ship you're flying, etc.). Boom, TiDi.
The "information about you" is the "brain." The "box" is a portable data structure--a cache, really, stored on a dedicated server--and so a handle to \where your brain is in the which box can be handed from one node to another when you change sessions. Database queries are then decoupled from session changes, and they can be done as needed, asynchronously. Suddenly, fleet undocks, docks, jumps, etc., no longer spike TiDi.
Also from memory, the next initiative after that decouples the notification system from the physics engine so that it can run on its own node. Then the physics engine only has to figure out what happened, and it can asynchronously call another process on another core (or node) to tell everyone on grid what happened. That will reduce the level of sustained TiDi caused by a major fleet fight. If that initiative has a cute name, I haven't heard it yet. Proud founder and member of the Belligerent Desirables. |

Dersen Lowery
Laurentson INC StructureDamage
860
|
Posted - 2013.12.05 04:44:00 -
[2] - Quote
Sentient Blade wrote: The underlying VM has no idea at all it's been moved.
And since it's taken a nontrivial amount of time to move relative to the 1HZ physics engine, meaning that the odds are very good that your half a second will cross a tick boundary, that means that every move must be followed by a resync with adjacent systems to get everyone back on the same page, right? If one node is off by a server tick, how do you handle that? Proud founder and member of the Belligerent Desirables. |